/**
* Copyright (c) 2012-2013 Nokia Corporation. All rights reserved.
* Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. 
* Oracle and Java are trademarks or registered trademarks of Oracle and/or its
* affiliates. Other product and company names mentioned herein may be trademarks
* or trade names of their respective owners. 
* See LICENSE.TXT for license information.
*/
package com.nokia.example.racer.gestures;

/**
 * Wrapper for providing gesture support, if there is one.
 * @see com.nokia.mid.ui.gestures
 */
public abstract class GestureProvider {

    private static GestureProvider provider;

    /**
     * Enable gestures if supported.
     *
     * @return true or false
     */
    public static boolean enableGestures() {
        provider = getImplementation();
        if (provider == null) {
            return false;
        }
        else {
            return true;
        }
    }

    /**
     * Loads up the isolated implementation class
     *
     * @return Orientation Returns Orientation implementation or null, if
     * orientations are not supported
     */
    private static GestureProvider getImplementation() {
        GestureProvider implementation = null;
        try {
            Class.forName("com.nokia.mid.ui.gestures.GestureInteractiveZone");

            Class c = Class.forName(
                "com.nokia.example.racer.gestures.GestureProviderImpl");
            implementation = (GestureProvider) (c.newInstance());
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return implementation;
    }
}
